package br.com.doctors.dao.administracao;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;
import br.com.caelum.vraptor.ioc.Component;
import br.com.doctors.dao.util.DaoImpl;
import br.com.doctors.modelo.administracao.PerfilUsuario;
import br.com.doctors.modelo.administracao.UsuarioInvalidoException;
@Component
public class PerfilUsuarioDao extends DaoImpl<PerfilUsuario>{
public PerfilUsuarioDao(Session session) {
super(session, PerfilUsuario.class);
}
// mudar p/ UsuarioInvalidoException.
public PerfilUsuario logar(PerfilUsuario usuario) throws UsuarioInvalidoException {
Criteria criteria = getSession().createCriteria(PerfilUsuario.class)
.add(Restrictions.ilike("login", usuario.getLogin(), MatchMode.EXACT))
.add(Restrictions.ilike("senha", usuario.getSenha(), MatchMode.EXACT));
PerfilUsuario user = (PerfilUsuario) criteria.uniqueResult();
if (user == null){
throw new UsuarioInvalidoException("Usu�rio Inv�lido!");
}
return user;
}
public boolean loginJaExiste(String login){
return getSession().createCriteria(PerfilUsuario.class)
.add(Restrictions.ilike("login", login, MatchMode.EXACT)).uniqueResult() != null;
}
public PerfilUsuario carrega(String nomeUsuario){
Criteria criteria = getSession().createCriteria(PerfilUsuario.class)
.add(Restrictions.ilike("login", nomeUsuario, MatchMode.EXACT));
PerfilUsuario user = (PerfilUsuario) criteria.uniqueResult();
return user;
}
}